html {
  font-family: monospace;
}
#headertable {
  width: 100%;
}
#rightmenu {
  vertical-align: top;
  text-align: right;
  float: right;
}
#credits {
  color: #ddd;
  text-decoration: none;
  margin-bottom: 0.5em;
  display: block;
}
#credits:hover {
  color: #000;
}
#arrow_opacity_range {
  width: 8em;
}
.right_hidden {
  text-align: left;
  display: none;
}
.textbutton {
  color: #222;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  margin-bottom: 0.5em;
}
.textbutton::before {
  content: "[";
}
.textbutton::after {
  content: "]";
}
.textbutton:hover {
  color: #922;
}
.textbutton:active {
  color: #d11;
}
.textbutton:hover::before {
  color: #222;
}
.textbutton:hover::after {
  color: #222;
}
label, input {
  vertical-align: middle;
}
.legend_rect {
  float: left;
  margin-right: 0.4em;
  width: 3em;
  height: 1.5em;
  border: 1px solid rgba(0, 0, 0, .2);
}
ul {
  list-style: none;
  padding: 0;
}
#help > p {
  margin-top: 0;
  margin-bottom: 0.5em;
  width: 29em;
}
#help > ul {
  margin-top: 0;
}
#help > p + p {
  margin-top: 1em;
}
li {
  clear: left;
  height: 2em;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.number {
  text-decoration: underline dotted #888;
}
#desc {
  width: 250px;
}
.infotables {
  padding: 0;
  display: block;
}
.conceal {
  display: none;
  border: 1px solid #000;
  max-width: 600px;
  margin-bottom: 1em;
}
.conceal div {
  word-break: break-word;
}
.indirect .phdr_itable::after {
  content: " (references this segment)";
}
.indirect .shdr_itable::after {
  content: " (references this section)";
}
.phdr_itable::before {
  content: "Program header";
}
.shdr_itable::before {
  content: "Section header";
}
.phdr_itable {
  text-align: left;
}
.shdr_itable {
  text-align: left;
}
.segment_itable::before {
  content: "Segment";
}
.section_itable::before {
  content: "Section";
}
.segment_itable {
  text-align: left;
}
.section_itable {
  text-align: left;
}
#offsets {
  display: inline-block;
  text-align: right;
  white-space: pre;
}
#bytes {
  border: 1px solid;
  display: inline-block;
  word-break: break-word;
  /* 16 bytes * (2 chars per byte + 1 space) - 1 final space */
  width: 47ch;
  white-space: pre;
}
#ascii {
  border: 1px solid;
  display: inline-block;
  width: 16ch;
  white-space: pre;
}
#vmap {
  border: 1px solid;
  display: inline-block;
  width: 47ch;
  vertical-align: top;
  position: sticky;
  top: 8px;
}
#sticky_table {
  display: inline-block;
  vertical-align: top;
  position: sticky;
  top: 8px;
}
#desc, .itable {
  vertical-align: top;
}
.hover:hover {
  background-color: #ee9;
}

.ident {
  background-color: #e99;
}
/* highlight fields */
.ident:hover > span {
  background-color: #ebb;
}
/* Duplicate of .hover:hover with more specifity. Used for elements like `#magic', for whom
 * rule `.ident:hover > span' would override rule `.hover:hover' */
.ident:hover > span:hover {
  background-color: #ee9;
}

/* same for .ehdr, but we also don't want to highlight .ident */
.ehdr {
  background-color: #99e;
}
.ehdr:hover > span:not(.ident) {
  background-color: #bbe;
}
.ehdr:hover > span:not(.ident):hover {
  background-color: #ee9;
}

.phdr {
  background-color: #eb9;
}
.phdr:hover > span {
  background-color: #ed9;
}
.phdr:hover > span:hover {
  background-color: #ef9;
}

.shdr {
  background-color: #9be;
}
.shdr:hover > span {
  background-color: #9de;
}
.shdr:hover > span:hover {
  background-color: #9fe;
}

.segment {
  background-color: #f99;
}
.section {
  background-color: #f9f;
}
/* there are only sections inside segments due to code */
.segment > .section, .segm_sect_legend {
  background: repeating-linear-gradient(
    -45deg,
    #f99,
    #f99 10px,
    #f9f 10px,
    #f9f 20px
  );
}
/* another duplicate of .hover:hover with more specifity */
.segment > .section:hover {
  background: initial;
  background-color: #ee9;
}

.segment > .segment_subrange:hover {
  background: initial;
  background-color: #f59;
}

svg {
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
  overflow: visible;
}
